package com.jacobson.core.widget.security

import com.jacobson.core.widget.security.authc.AuthenticationInfo
import com.jacobson.core.widget.security.authc.AuthenticationToken

/**
 * ================================================
 *
 *  @author Wucz on 2018/8/7 8:49
 * ================================================
 */
interface SubjectContext {
    fun resolveSecurityManager(): SecurityManager?
    fun resolveSession(): Any?
    fun resolvePrincipal(): Any?
    fun resolveAuthenticated(): Boolean

    var authenticated: Boolean
    var authenticationToken: AuthenticationToken?
    var authenticationInfo: AuthenticationInfo?
    var securityManager: SecurityManager?
    var subject: Subject?
    var principal: Any?

}